package com.xoms.admin.service;

import com.xoms.admin.controller.res.bean.RAccountRolesBean;
import com.xoms.admin.controller.res.bean.RRoleBean;
import com.xoms.admin.model.AccountBean;
import com.xoms.admin.service.res.PageResult;

/**
 * 角色业务
 * 
 * @author chengl
 *
 */
public interface RoleService {
	
	/**
	 * 根据账号id获取角色列表
	 * @param account
	 * @param accid
	 * @return
	 */
	PageResult<RAccountRolesBean> getAccountRoles(AccountBean account, String accid);
	
	/**
	 * 新建/更新角色
	 * @param account
	 * @param roleId
	 * @param name
	 * @param isEnable
	 * @param desc 
	 * @return
	 */
	RRoleBean edit(AccountBean account, int roleId, String name, int isEnable, String desc, int sort);

	/**
	 * 启用角色
	 * @param account
	 * @param roleId
	 * @return
	 */
	boolean enable(AccountBean account, int roleId);
	
	/**
	 * 禁用角色
	 * @param account
	 * @param roleId
	 * @return
	 */
	boolean disable(AccountBean account, int roleId);
	
	/**
	 * 删除角色
	 * @param account
	 * @param roleId
	 * @return
	 */
	boolean del(AccountBean account, int roleId);
	
	/**
	 * 获取角色列表
	 * @param account
	 * @param key
	 * @param page
	 * @param pagesize
	 * @return
	 */
	PageResult<RRoleBean> getRoles(AccountBean account, String key, int page, int pagesize);
	
	/**
	 * 编辑角色权限
	 * @param account
	 * @param roleId
	 * @param resourceIds
	 * @return
	 */
	boolean addRoleResources(AccountBean account, int roleId, String resourceIds);
	
	/**
	 * 编辑角色顺序
	 * @param sorts
	 * @param page
	 * @param pagesize
	 * @return
	 */
	boolean editSorts2Role(String sorts, int page, int pagesize);
	
	/**
	 * 添加账号橘色
	 * @param account
	 * @param accid
	 * @param roleIds
	 * @return
	 */
	boolean addAcountRoles(AccountBean account, String accid, String roleIds);
	
	/**
	 * 删除账号角色
	 * @param account
	 * @param accid
	 * @param roleIds
	 * @return
	 */
	boolean delAcountRoles(AccountBean account, String accid, String roleIds);

	boolean delRoleResources(AccountBean account, int roleId, String resourceIds);
	
}
